草庐IT

c++ - Qt 小部件未显示在主窗口中

我正在尝试创建主应用程序窗口。它应该有一个菜单栏,并在下面显示一个带有分隔符的标签。我的主窗口代码如下。我遇到的问题是菜单栏显示但标签和拆分器不显示。到目前为止我尝试过的事情:1.将拆分器的父级设置为“this”->拆分器显示,但绘制在菜单栏上并且很小。2.将标签的父级设置为“this”->标签显示,但绘制在菜单栏上。3.将分离器的父级设置为“this”,父级和标签->标签不显示,我在菜单栏下方绘制了拖鞋的微型版本。4.尝试重新排列代码行并得到各种其他结果,例如在菜单栏上绘制的大拆分器不随窗口调整大小,在菜单栏下方的小拆分器,只有菜单栏,没有其他任何东西,等等-没有用。看起来垂直布局完

【QT专栏】QT中实现多线程的四种方式和线程同步

目录一、继承QThread1.基本概念2.操作流程二、继承QObject(推荐)1.基本概念2.操作流程三、继承QRunnable,配合QThreadPool实现多线程1.外界通信2.QMetaObject::invokeMethod()介绍3.QMetaObject::invokeMethod()使用方式四、使用QtConcurrent::run()1.基本概念2.操作流程3.实现案例五,线程同步1.低级同步原语2.高级事件队列一、继承QThread1.基本概念一个QThread类的对象管理一个子线程,自定义一个类继承自QThread,并重写虚函数run(),在run()函数里实现线程需要完

c++ - 使用 GCC 4.6.2 C++ Qt、MinGW、Vista 设置堆栈大小

我想增加我的程序的堆栈大小,因为我有一个复杂的递归算法,迭代重写将是一个真正的痛苦。我正在使用GCCC++4.6.2。MinGw,在Vista上使用Qt.pro文件构建(我使用Qt作为GUI前端)。本网站的建议是使用:-gcc-Wl,--stack,4194304并将其发送到g++链接阶段:-LIB+=-Wl,--stack,4194304但是链接器错误:-g++:error:unrecognizedoption'--stack,4194304'我尝试使用QMAKE_CXXFLAGS+=将选项发送到编译阶段,但g++仍然barfs。唯一不会barf的选项是GCC文档(.pdf4.5.0

c++ - Qt 中的动画绑定(bind)更改

我正在尝试找到一种方法来在绑定(bind)更改时对QML元素进行转换。假设您有一个Text元素,其中text属性绑定(bind)到某物。我想要的是当绑定(bind)中的数据发生变化时,元素淡出(仍显示旧数据),切换并淡入新数据(实际转换发生在元素不可见时。)我一直在到处寻找执行此操作的方法,但我能弄清楚。我试过在QML中使用QtQuick动画,但是数据本身在动画运行之前发生了变化,从而使动画变得不必要。我已经尝试创建一个自定义QDeclarativeItem对象,该对象在QDeclarativeItem::paint()中调用动画,但我不知道如何让它实际运行。我应该在这里指出,我知道我

c++ - 如何在qt中编写自己的收藏?

我正在写一些像QT中的普通集合一样的类:classMyCollection{MyElement&at(int)const;MyElement&operator[](int)const;intcount()const;};现在我想用QT的foreach枚举我的新类中的所有元素。我应该怎么做才能实现这一目标? 最佳答案 Qt(至少4.8)使用(来自foreach宏)模板包装类QForeachContainer(参见qglobal.h)进行迭代嗯。默认实现调用begin()/end(),但您也可以编写自己的特化......或者只实现ite

c++ - Qt错误: 'const class QString' has no member named 'toStdString'

我收到此错误error:'constclassQString'hasnomembernamed'toStdString'虽然QString有它。(link).代码std::stringMessage::toStdString()const{returnm_string.toStdString();} 最佳答案 直接从这里复制答案:HowtoconvertQStringtostd::string?QStringqs;//EitherthisifyouuseUTF-8anywherestd::stringutf8_text=qs.toU

c++ - Qt的QTcpSocket ReadyRead信号的实现

我想了解Qt对QTcpSocket的ReadyRead信号的实现。它在Windows和Linux上是如何实现的?使用select()、poll()、epoll()、SIGIO或任何其他方式?QTcpSocket如何知道何时发出ReadyRead信号? 最佳答案 由于Qt是开源的,你可以直接查看源代码,自己看看。他们甚至拥有它postedonline.操作系统特定部分(我认为)在qnativesocketengine_unix.cpp中实现在qnativesocketengine_win.cpp.

c++ - Qt Designer - 如何将信号连接到静态函数?

好的,我正在使用QtDesigner构建GUI。我已经设法弄清楚如何制作menuBar并且我已经向栏中添加了一些Action,但现在我需要连接这些Action以使它们做一些事情。具体来说,在我的文件菜单上,我有简单的打开操作。我希望此操作运行调用我的QFileDialog等的函数,但我不知道如何执行此操作。那么,如何将我的actionOpen连接到我的静态函数?我正在使用最新的Qt,5.0.2我在这里有点沮丧。这显然是某人可能需要做的最基本的事情之一,但我无法在网络上的任何地方找到任何真正的解决方案。从缺少Qtwiki到其他人的问题,似乎没有人真正有明确的答案。旧版本的Qt有答案,但在

c++ - 滚动时Qt List Widget动态内容加载

我想为Qt(不是QML)创建一个小部件,它派生自QListWidget等,并在向上/向下滚动时动态加载内容,就像大多数Android/iOS应用程序一样。有人知道哪种方法最好吗?干杯, 最佳答案 动态加载内容并不意味着它是无限的。为此,只需实现模型的fetchMore()和canFetchMore()方法。 关于c++-滚动时QtListWidget动态内容加载,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

c++ - Qt串口通信

我正在编写一个Qt应用程序以通过串行端口与另一台计算机通信。我有两个真正的问题。1.我可以很好地发送和接收数据,但有时串行端口会“吃掉”我输入的一部分。例如,如果我发送:cd/application/bin有时(不总是)它只会接收:cd/applica(因为它是一个终端,它会回显输入。而且我的提示告诉我我显然在错误的位置。)2.此外,有时即使我知道我可以接收数据,当有可用数据时触发的Qt插槽也不会触发。如果我向端口发送另一个\r\n插槽将触发。例如,有时我会ls一些东西,命令名称将从端口读回,但文件夹的内容一直处于不确定状态,直到我再次按下回车键。然后我得到目录列表和两个提示。这是我的